package org.dromara.quick.chat.domain;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.util.Date;
import lombok.Data;

/**
 * 封禁记录表，用于记录用户的封禁信息，为判别用户行为提供依据
 * @TableName im_ban_record_log
 */
@TableName(value ="im_ban_record_log")
@Data
public class ImBanRecordLog {
    /**
     * 唯一标识封禁记录的编号，系统自动生成，用于区分不同的封禁记录
     */
    @TableId(type = IdType.AUTO)
    private Long id;

    /**
     * 被封禁的用户编号，与系统中的用户表相关联，用于明确封禁的对象
     */
    private Long userId;

    /**
     * 封禁类型，1 代表骚扰用户，2 代表账号异常，用于区分封禁的原因
     */
    private Integer banType;

    /**
     * 封禁状态，0 代表未解封，1 代表已解封，反映当前封禁的处理情况
     */
    private Integer status;

    /**
     * 对此次封禁情况的详细描述，例如违规行为的具体表现等
     */
    private String description;

    /**
     * 开始对用户进行封禁的时间，精确记录封禁起始点
     */
    private Date banTime;

    /**
     * 封禁的持续时长，以分钟为单位，用于计算解封时间
     */
    private Integer banDuration;

    /**
     * 根据封禁时间和封禁时长计算得出的解封时间，若已解封则为实际解封时间
     */
    private Date unbanTime;

    /**
     * 该封禁记录创建的时间，系统自动记录创建时刻
     */
    private Date createTime;
}